2025-12-27 Array in Bash _Linux einlesen Mammouth AI

Lösungsmöglichkeiten

1. Array von Anfang an verwenden (beste Lösung)

search_terms=("porree" "eier" "salz" "test")  # Array definieren
st_zaehler=0

for term in "${search_terms[@]}"; do
    ((st_zaehler++))
    such_wort[$st_zaehler]="$term"
    echo "Suchwort $st_zaehler: $term"
done
search_terms=("porree" "eier" "salz" "test")  # Array definieren
st_zaehler=0

for term in "${search_terms[@]}"; do
    ((st_zaehler++))
    such_wort[$st_zaehler]="$term"
    echo "Suchwort $st_zaehler: $term"
done

2. String in ein Array umwandeln (falls nötig)

Falls du search_terms als String hast und ihn in ein Array umwandeln musst:

search_terms="porree eier salz test"
IFS=" " read -ra such_wort <<< "$search_terms"  # String in Array umwandeln

st_zaehler=0
for term in "${such_wort[@]}"; do
    ((st_zaehler++))
    echo "Suchwort $st_zaehler: $term"
done
search_terms="porree eier salz test"
IFS=" " read -ra such_wort <<< "$search_terms"  # String in Array umwandeln

st_zaehler=0
for term in "${such_wort[@]}"; do
    ((st_zaehler++))
    echo "Suchwort $st_zaehler: $term"
done

3. String mit for und IFS verarbeiten (weniger empfehlenswert)

Falls du unbedingt mit einem String arbeiten willst:

search_terms="porree eier salz test"
st_zaehler=0
IFS=" "  # Trennzeichen auf Leerzeichen setzen

# Wichtig: "$search_terms" DARF NICHT in Anführungszeichen stehen!
for term in $search_terms; do
    ((st_zaehler++))
    such_wort[$st_zaehler]="$term"
    echo "Suchwort $st_zaehler: $term"
done

unset IFS  # IFS zurücksetzen (optional)
search_terms="porree eier salz test"
st_zaehler=0
IFS=" "  # Trennzeichen auf Leerzeichen setzen

# Wichtig: "$search_terms" DARF NICHT in Anführungszeichen stehen!
for term in $search_terms; do
    ((st_zaehler++))
    such_wort[$st_zaehler]="$term"
    echo "Suchwort $st_zaehler: $term"
done

unset IFS  # IFS zurücksetzen (optional)

Zusammenfassung

Methode Vorteile Nachteile
Array von Anfang an (search_terms=("a" "b" "c")) ✅ Sicher, keine Probleme mit Leerzeichen ❌ Muss von Anfang an als Array definiert werden
String → Array umwandeln (read -ra arr <<< "a b c") ✅ Funktioniert mit bestehenden Strings ❌ Etwas umständlicher
String mit IFS und for (for term in $string; do) ✅ Einfache Syntax ❌ Unsicher bei Leerzeichen/Sonderzeichen

Empfehlung

Verwende von Anfang an ein Array!

search_terms=("porree" "eier" "salz" "test")  # Array definieren
for term in "${search_terms[@]}"; do
    echo "Suchwort: $term"
done
search_terms=("porree" "eier" "salz" "test")  # Array definieren
for term in "${search_terms[@]}"; do
    echo "Suchwort: $term"
done